// 主页面密码表单提交处理
if (document.getElementById('passwordForm')) {
    document.getElementById('passwordForm').addEventListener('submit', function(e) {
        e.preventDefault();
        const password = document.getElementById('password').value;
        const submitButton = this.querySelector('button[type="submit"]');
        const originalButtonText = submitButton.textContent;

        // 简单验证密码格式
        if (!password) {
            alert('请输入密码');
            return;
        }

        // 显示加载状态
        submitButton.disabled = true;
        submitButton.textContent = '加载中...';

        // 兼容虚拟主机的请求处理函数
        function submitPassword(password) {
            // 优先使用fetch API
            if (window.fetch) {
                return fetch('decrypt.php', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded'
                    },
                    body: 'password=' + encodeURIComponent(password)
                })
                .then(response => {
                    if (!response.ok) {
                        throw new Error('网络响应错误: ' + response.status);
                    }
                    return response.json();
                });
            } else {
                // 备选方案: 使用XMLHttpRequest
                return new Promise(function(resolve, reject) {
                    const xhr = new XMLHttpRequest();
                    xhr.open('POST', 'decrypt.php', true);
                    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                    xhr.onreadystatechange = function() {
                        if (xhr.readyState === 4) {
                            if (xhr.status === 200) {
                                try {
                                    const data = JSON.parse(xhr.responseText);
                                    resolve(data);
                                } catch (e) {
                                    reject(new Error('解析响应失败: ' + e.message));
                                }
                            } else {
                                reject(new Error('网络响应错误: ' + xhr.status));
                            }
                        }
                    };
                    xhr.send('password=' + encodeURIComponent(password));
                });
            }
        }

        // 发送密码请求
        submitPassword(password)
        .then(data => {
            // 恢复按钮状态
            submitButton.disabled = false;
            submitButton.textContent = originalButtonText;

            console.log('解密响应:', data);

            if (data.success) {
                // 存储解密后的内容到sessionStorage
                try {
                    sessionStorage.setItem('letterContent', data.content);
                    sessionStorage.setItem('letterNumber', data.number);
                    console.log('内容已存储到sessionStorage，准备跳转');
                    // 跳转到书信页面
                    window.location.href = 'shuxin.html';
                } catch (e) {
                    console.error('sessionStorage存储失败:', e);
                    // 备选方案: 使用URL参数跳转
                    alert('会话存储失败，将使用备用方式跳转');
                    window.location.href = 'shuxin.html?p=' + encodeURIComponent(password);
                }
            } else {
                alert(data.message || '密码错误或书信不存在');
            }
        })
        .catch(error => {
            // 恢复按钮状态
            submitButton.disabled = false;
            submitButton.textContent = originalButtonText;
            console.error('请求错误:', error);
            // 显示更详细的错误信息
            alert('处理请求时发生错误: ' + error.message + '\n\n可能的原因:\n1. 服务器未正确配置PHP环境\n2. decrypt.php文件不存在或权限错误\n3. 网络连接问题\n\n请联系管理员或尝试刷新页面重试');
        });
    });
}

// 书信页面加载处理
if (document.getElementById('letterContent')) {
    // 从sessionStorage获取书信内容
    let letterContent = sessionStorage.getItem('letterContent');
    let letterNumber = sessionStorage.getItem('letterNumber');

    console.log('从sessionStorage获取内容:', letterContent);

    if (letterContent) {
        document.getElementById('letterContent').textContent = letterContent;
        if (letterNumber) {
            document.getElementById('letterNumber').textContent = '书信编号: ' + letterNumber;
        }
        // 清除sessionStorage中的内容
        sessionStorage.removeItem('letterContent');
        sessionStorage.removeItem('letterNumber');
    } else {
        // 备选方案: 检查URL参数
        const urlParams = new URLSearchParams(window.location.search);
        const password = urlParams.get('p');
        if (password) {
            document.getElementById('letterContent').textContent = '加载中...';
            // 使用XMLHttpRequest请求
            const xhr = new XMLHttpRequest();
            xhr.open('POST', 'decrypt.php', true);
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            xhr.onreadystatechange = function() {
                if (xhr.readyState === 4) {
                    if (xhr.status === 200) {
                        try {
                            const data = JSON.parse(xhr.responseText);
                            if (data.success) {
                                document.getElementById('letterContent').textContent = data.content;
                                if (data.number) {
                                    document.getElementById('letterNumber').textContent = '书信编号: ' + data.number;
                                }
                            } else {
                                document.getElementById('letterContent').textContent = '错误: ' + (data.message || '密码错误或书信不存在');
                            }
                        } catch (e) {
                            document.getElementById('letterContent').textContent = '解析响应失败: ' + e.message;
                        }
                    } else {
                        document.getElementById('letterContent').textContent = '网络响应错误: ' + xhr.status + '\n\n可能的原因:\n1. 服务器未正确配置PHP环境\n2. decrypt.php文件不存在或权限错误\n3. 网络连接问题';
                    }
                }
            };
            xhr.send('password=' + encodeURIComponent(password));
        } else {
            document.getElementById('letterContent').textContent = '未找到书信内容或会话已过期，请返回主页面重新输入密码。';
        }
    }
}

// 通用工具函数
function showError(elementId, message) {
    const element = document.getElementById(elementId);
    if (element) {
        element.innerHTML = '<p class="error">' + message + '</p>';
    }
}

function showSuccess(elementId, message) {
    const element = document.getElementById(elementId);
    if (element) {
        element.innerHTML = '<p>' + message + '</p>';
    }
}

// 添加页面加载动画
document.addEventListener('DOMContentLoaded', function() {
    const loader = document.createElement('div');
    loader.className = 'page-loader';
    loader.innerHTML = '<div class="loader"></div>';
    document.body.appendChild(loader);

    // 页面加载完成后隐藏加载动画
    window.addEventListener('load', function() {
        setTimeout(function() {
            loader.style.opacity = '0';
            setTimeout(function() {
                document.body.removeChild(loader);
            }, 300);
        }, 500);
    });

    // 添加全局样式
    const style = document.createElement('style');
    style.textContent = `
        .page-loader {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: white;
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 9999;
            transition: opacity 0.3s ease;
        }
        .loader {
            width: 48px;
            height: 48px;
            border: 5px solid #f3f3f3;
            border-top: 5px solid #4a6cf7;
            border-radius: 50%;
            animation: spin 1s linear infinite;
        }
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
    `;
    document.head.appendChild(style);
});